{
  // 泛型接口:
  // 定义一个接口，用来描述一个可以接受任意类型的方法
  // 接口更加通用了, 就不再是写死了 就能描述更多的类型了
  interface UserObj<T, K> {
    name: T
    age: K
    desc: T
  }

  const obj1: UserObj<string, number> = {
    name: 'cxk',
    age: 25,
    desc: '时长两年半',
  }

  obj1.name

  const obj2: UserObj<number, number> = {
    name: 1,
    age: 25,
    desc: 1,
  }

  obj2.name
}
2

{
  const arr: number[] = [1, 2, 3, 4, 5]

  // js中内置的泛型接口
  const arr2: Array<number> = [1, 2, 3, 4, 5]
  // arr2.push(1, 2, '3')  // 会报错
}
